In the computing field, application programs exist to perform many different types of computing tasks, such as financial tasks, mathematical tasks, research tasks, commerce related tasks, and more.
Application programs range from very simple standalone application programs performing one or more simple tasks to very complex systems of programs having rich functionality sets. Often, application programs comprise many software components, each of the software components interoperating to produce a desired result.
Typically, development and deployment of application program and system modules or components takes a great deal of time to get right. An application program or system developer will design the operational features and how those features interoperate, develop source code in one or more languages to implement the designed functionality, compile and link the source code into executable code and then begin a long and sometimes arduous testing process. If one or more software components fail to operate perfectly, the application program or system developer will typically review the source code and the design to locate and correct any errors, thereby ensuring that appropriate processes have been implemented to minimize or eliminate the possibility of further errors occurring once deployment of the application program or system has taken place.
In more complex situations where different system modules or components reside on different platforms, each of the processes listed above often needs to take place independently for each software module or component and for each platform those modules or components are deployed on.
Further, the processes listed above are required to be undertaken each time any of the modules or components require updating, such as when a module or component lacks additional desired functionality. Thus, when adding a function to an already deployed application program or system, an application program or system developer will review the earlier design of the already-deployed operational features and how those features interoperate, and then will add to the original design or alternatively change the original design, or both, in order to accommodate the new functionality. The application program or system developer then develops new source code in one or more languages to implement the designed functionality, while not affecting the already deployed functionality, and then compiles and links the source code into executable code. The resulting executable code is a new version of the application program or system which is then subjected to the long and sometimes arduous testing process.
Again, if one or more new software components fail to operate perfectly, the application program or system developer will review the new source code and the new design to locate and correct any errors, to minimize or eliminate the possibility of further errors occurring once deployment of the application program or system has taken place.
The processes discussed above typically result in an application program or system generalized to satisfy the overall needs of a diverse user base. However, there is little customizability for each different set of authorized users. To customize an application program or a system for different sets of users, application program or system developers typically have to create a new set of software modules or component s for each new set of users. Each new set of software modules or component s then has to be independently maintained and updated, requiring a great deal of additional manpower. Maintaining multiple different sets of software modules or components tremendously increases the manpower and resource burden associated with creation and upkeep of the source code.
Thus, what is needed is a new method and system for rapid deployment and execution of customized functionality across multiple distinct platforms.